home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Applications / PICSee Dust 1.01 / Primary Source / PICSViewerPrivate.h < prev    next >
Text File  |  1995-11-15  |  6KB  |  258 lines

  1. #ifndef GRAPHICSBUFFERS_H_
  2. #include "GraphicsBuffers.h"
  3. #endif
  4.  
  5. #ifndef PICSTYPES_H_
  6. #include "PICS_Types.h"
  7. #endif
  8.  
  9. #ifndef PICSINFO_H_
  10. #include "PICS_Info.h"
  11. #endif
  12.  
  13. #ifndef __STRINGUTILS__
  14. #include "StringUtils.h"
  15. #endif
  16.  
  17. #ifndef DIALOGUTILS_H_
  18. #include "DialogUtils.h"
  19. #endif
  20.  
  21. #ifndef _QDUTILS_H_
  22. #include "QDUtils.h"
  23. #endif
  24.  
  25. enum {
  26.     kPICSViewerTemplateID = 1000,
  27.     kPICSViewerSpeedMenuID = kPICSViewerTemplateID,
  28.     
  29.     kPICSViewerPromptSaveID = 1100,
  30.     kPICSViewerPromptSave = 1,
  31.     kPICSViewerPromptCancel,
  32.     kPICSViewerPromptDontSave
  33. };
  34.  
  35. enum {        
  36.     kSmallWidth = 400,        // Viewing area of small viewer
  37.     kSmallHeight = 250,
  38.     
  39.     kUsualSpeedIncrement = 1,
  40.     kLargerSpeedIncrement = 5,
  41.     kUsualMoveIncrement = 1,
  42.     kLargerMoveIncrement = 5
  43. };
  44.  
  45. enum {
  46.     kCrossCursorID = 128,
  47.     kLightningCursorID,
  48.     kScissorCursorID,
  49.     kAltCrossCursorID,
  50.     kHandOpenCursorID,
  51.     kHandClosedCursorID,
  52.     kHorizontalArrowID,
  53.     kVerticalArrowID
  54. };
  55.  
  56. enum {
  57.     kNoAction,
  58.     kSelectionAction,
  59.     kCompositeAction,
  60.     kSplitAction,
  61.     kMoveSelectionAction,
  62.     kLeftAdjustSelectionAction,
  63.     kTopAdjustSelectionAction,
  64.     kRightAdjustSelectionAction,
  65.     kBottomAdjustSelectionAction
  66. };
  67.  
  68. enum {
  69.     kNormalMagnification = 1,
  70.     kDoubleMagnification,
  71.     kTripleMagnification,
  72.     kQuadMagnification
  73. };
  74.  
  75. enum {
  76.     kPICSViewer_ButtonBoxID = 128,
  77.     kPICSViewer_SpeedPopupID = kPICSViewerSpeedMenuID,
  78.  
  79.     kPICSViewer_StopBtnUpID = 129,        // PICT rsrc id's
  80.     kPICSViewer_RewindBtnUpID,
  81.     kPICSViewer_StepBackBtnUpID,
  82.     kPICSViewer_PlayBtnUpID,
  83.     kPICSViewer_StepForwardBtnUpID,
  84.     kPICSViewer_ForwardBtnUpID,
  85.  
  86.     kPICSViewer_StopBtnDownID,
  87.     kPICSViewer_RewindBtnDownID,
  88.     kPICSViewer_StepBackBtnDownID,
  89.     kPICSViewer_PlayBtnDownID,
  90.     kPICSViewer_StepForwardBtnDownID,
  91.     kPICSViewer_ForwardBtnDownID
  92. };
  93.  
  94. enum {
  95.     kPICSViewer_StopBtn = 1,
  96.     kPICSViewer_RewindBtn,
  97.     kPICSViewer_StepBackBtn,
  98.     kPICSViewer_PlayBtn,
  99.     kPICSViewer_StepForwardBtn,
  100.     kPICSViewer_ForwardBtn,
  101.     
  102.     kPICSViewer_CompositeBtn,
  103.     kPICSViewer_SplitBtn,
  104.     
  105.     kPICSViewer_SpeedField,
  106.     kPICSViewer_SpeedPopupBtn,
  107.     kPICSViewer_SpeedUpBtn,
  108.     kPICSViewer_SpeedDownBtn,
  109.     
  110.     kPICSViewer_LoopBtn,
  111.     kPICSViewer_BounceBackBtn,
  112.     
  113.     kPICSViewer_TrackMouseBtn,
  114.     
  115.     kPICSViewer_PopupInfoBtn,
  116.  
  117.     kPICSViewer_CurFrameField,
  118.     kPICSViewer_NumFramesField,
  119.     kPICSViewer_PICSWidthField,
  120.     kPICSViewer_PICSHeightField,
  121.     kPICSViewer_TrackMouseField,
  122.     kPICSViewer_TrackCropField,    
  123.     
  124.     kPICSViewer_OutputBox,
  125.     kPICSViewer_SpeedBox,
  126.     kPICSViewer_BtnBox,
  127.     
  128.     kPICSViewer_Line1,
  129.     kPICSViewer_Line2,
  130.     kPICSViewer_Line3
  131. };
  132.  
  133. // ---------------------------------------------------------------------------
  134.  
  135. typedef struct {
  136.     GraphicsBufferPtr buffer;
  137.     Rect bounds;
  138. } PICSViewerBtn;
  139. static PICSViewerBtn sBtnData;
  140.  
  141. typedef struct {
  142.     DialogPtr            window;
  143.     GraphicsBufferPtr    buffer;
  144.     long                bufferDepth;
  145.  
  146.     Rect                picsFrame;
  147.     Rect                outputFrame;
  148.  
  149.     Rect                marqueeRect;
  150.     Point                trackingPoint;
  151.  
  152.     short                trackMouse;
  153.     short                currentAction;
  154.  
  155.     short                fileRefNum;
  156.     short                fileModified;
  157.     long                fileSize;
  158.  
  159.     short                numFrames;
  160.     short                curFrame;
  161.     short                animationMethod;
  162.     short                usesDeltaPictures;
  163.     short                magnification;
  164.  
  165.     short                doLoop;
  166.     short                doBounceBack;
  167.     
  168.     PICSInfo            picsInfo;
  169.     FSSpec                picsFile;
  170. } PICSViewerData;
  171.  
  172. // ---------------------------------------------------------------------------
  173.  
  174. PICSViewerData *_ExtractPICSViewer(DialogPtr srcViewer);
  175.  
  176. Boolean _ClosePICSViewer(PICSViewerData *viewer);
  177. Boolean _SavePICSViewer(PICSViewerData *viewer);
  178. void _ClickPICSViewer(PICSViewerData *viewer, short itemClicked);
  179. void _KeyDownPICSViewer(PICSViewerData *viewer, char keyPressed);
  180. void _UpdatePICSViewer(PICSViewerData *viewer);
  181. void _IdlePICSViewer(PICSViewerData *viewer);
  182. void _SetPICSViewerCursor(PICSViewerData *viewer);
  183.  
  184. void _UpdatePICSViewerInfo(PICSViewerData *viewer);
  185. void _ActivatePICSViewer(PICSViewerData *viewer, Boolean activate);
  186.  
  187. void _DrawPICSViewerBtn(PICSViewerData *viewer, short btn, Boolean pushed);
  188. void _DrawPICS(PICSViewerData *viewer);
  189. void _SetPICSViewerModified(PICSViewerData *viewer, Boolean modified);
  190. Boolean _IsPICSViewerModified(PICSViewerData *viewer);
  191. void _SelectEntirePICSViewerFrame(PICSViewerData *viewer, Boolean select);
  192. void _CopyPICSViewerFrame(PICSViewerData *viewer);
  193.  
  194. void _RewindPICSViewer(PICSViewerData *viewer);
  195. void _StepBackPICSViewer(PICSViewerData *viewer);
  196. void _PlaySynchPICSViewer(PICSViewerData *viewer);
  197. void _StepForwardPICSViewer(PICSViewerData *viewer);
  198. void _ForwardPICSViewer(PICSViewerData *viewer);
  199.  
  200. void _IncreasePICSViewerSpeed(PICSViewerData *viewer);
  201. void _DecreasePICSViewerSpeed(PICSViewerData *viewer);
  202.  
  203. void _ShowPICSViewerPopupInfo(PICSViewerData *viewer);
  204.  
  205. void _ActionPICSViewer(PICSViewerData *viewer);
  206. void _KeyDownPICSViewerSelection(PICSViewerData *viewer, char keyPressed);
  207. void _CompositePICSViewer(PICSViewerData *viewer);
  208. void _SplitPICSViewer(PICSViewerData *viewer);
  209.  
  210. // ---------------------------------------------------------------------------
  211.  
  212. void _SetMarqueeColor(RGBColor *marqueeColor);
  213. void _FrameMarquee(PICSViewerData *viewer);
  214. void _TrackUpdateMarquee(const Rect *rectToUpdate, const Rect *currentMarquee);
  215.  
  216. void _SetMarqueeRect(
  217.     PICSViewerData *viewer,
  218.     const Rect *newMarquee,
  219.     Boolean updateInfo);
  220.  
  221. void _UpdateMarqueeRectInfo(PICSViewerData *viewer);
  222. void _EraseMarquee(PICSViewerData *viewer, const Rect *rectToErase);
  223.  
  224. // ---------------------------------------------------------------------------
  225.  
  226. // Shortcuts when opening a PICS viewer
  227.  
  228. // Regardless of size, use the large window
  229. #define USELARGEWINDOW_SHORTCUT        ShiftKeyDown()
  230. // If use monitor depth for buffer, use pic's depth instead, or vice-versa
  231. #define REVERSEANIMATION_SHORTCUT    OptionKeyDown()
  232.  
  233.  
  234. // Shortcuts when playing a PICS viewer
  235.  
  236. // Play at fastest speed possible
  237. #define FASTESTANIM_SHORTCUT        ShiftKeyDown()
  238. // Draw marquee when playing PICS
  239. #define DRAWMARQUEE_SHORTCUT        CapsKeyDown()
  240.  
  241.  
  242. #define LARGERINCREMENT_SHORTCUT    ShiftKeyDown()
  243.  
  244.  
  245. #define SHRINKSELECTION_SHORTCUT    OptionKeyDown()
  246. #define GROWSELECTION_SHORTCUT        ControlKeyDown()
  247.  
  248.  
  249. #define MOVESELECTION_SHORTCUT        SpaceKeyDown()
  250.  
  251. // Misc shortcuts
  252. #define    VIEWDELTA_DEBUG                CapsKeyDown()
  253.  
  254.  
  255. #define kEmptyStr "\p  "
  256.  
  257. // ---------------------------------------------------------------------------
  258.